// 该文件存放了一些参数验证，参数格式化的方法
import { Message } from "element-ui"

// 校对手机号码是否正确
export const isPhone = (phone :string) :boolean =>{
    if(!(/^1[3456789]\d{9}$/.test(phone))){
        Message.error('手机号码格式不正确')
        return false
    }else{
        return true
    }
}

// 校对身份证是否正确
export const isCard = (idcard :string) :boolean =>{
    const regIdNo = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; 
    if(!regIdNo.test(idcard)){ 
        Message.error('身份证号码格式不正确')
        return false
    }else{
        return true
    }
}

// 格式化日期格式
// fmt: 'yyyy-MM-dd hh:mm:ss'    time: new Date(1554780164000)
export const formatDate = (fmt :string, time:Date) :string => {
	const o:any = {
		'M+': time.getMonth() + 1, // 月份 4
		'd+': time.getDate(), // 日  9
		'h+': time.getHours(), // 小时 11
		'm+': time.getMinutes(), // 分 22
		's+': time.getSeconds(), // 秒 44
		'q+': Math.floor((time.getMonth() + 3) / 3), // 季度
		'S': time.getMilliseconds() // 毫秒
	};
	if (/(y+)/.test(fmt)) {
		// RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个子匹配
		fmt = fmt.replace(RegExp.$1, (time.getFullYear() + '').substr(4 - RegExp.$1.length)); // 这是转换年
	}
	for (const k in o) {
		if (new RegExp('(' + k + ')').test(fmt)) {
			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ?
				(o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
			// o[k] 4 9 11 22 44
			// '00'+o[k] 004 009 0011 0022 0044
			// ..substr(('' + o[k]).length从o[k].length开始截取
		}
	}
	return fmt; // 2019-04-09 11:22:44
};

// 检测每个参数不能为空，必传
export const notnull = (data: any) => {
    if (!data) {
        return Message.error('请添加判断数据')
    }
    let msg = ''
    const keys = Object.keys(data)
    try {
        keys.forEach(v => {
            if (!data[v]) {
                throw new Error("请填写完整数据")
            }
        })
    } catch (e) {
        msg = '请填写完整数据'
    }
    if (msg) {
        Message.error(msg)
    }
    return msg ? false : true;
}

